查看原文
其他

我国非金融企业信用债违约先兆分析与建模探究

刘律康等 债券杂志 2022-04-24

刘律康  班越  赵振  胡光琪  张东朔


摘   要

本文以银行间债券市场和交易所债券市场非金融企业信用债为研究对象,通过债券发行主体公开信息并结合建设银行内部数据,从发行主体所处宏观经济环境、财务指标、债券交易价格等方面对非金融企业信用债违约因素进行探究,发现经济周期、发行主体现金流及债券交易价格等因素对于揭示债券违约风险具有重要意义,并使用随机森林和XGBoost两种机器学习算法构建模型,生成信用债高违约风险预警名单,旨在为风控部门、交易与投资部门提供决策支持。


关键词

非金融企业信用债  财务指标  随机森林算法  XGBoost算法  高风险违约预警名单


银行间债券市场和交易所债券市场非金融企业信用债(以下简称“信用债”)是政府之外的主体进行直接融资的重要渠道,是资本市场的重要组成部分。近年来,我国信用债市场发展迅速,满足了企业多种融资需求,助力实体经济快速发展,但同时信用债违约[1]风险也有快速上升的趋势。在此背景下,本文尝试构建以海量数据分析为基础的多指标前瞻性违约风险模型,旨在对信用债违约先兆进行早期识别和预警防范。

 

基于公开市场信息的信用债违约特征研究


利用公开信息对信用债违约进行解释并构建相应模型进行预测,一直是信用债违约研究的重点内容。在债券违约发生前,发行主体所处宏观经济环境、财务指标、债券交易价格等通常会表现异常,从而反映出一定程度的违约风险信号。


(一)宏观经济环境与债券违约的关系


影响债券偿付能力的宏观经济因素包括经济增速、货币政策与财政政策。


就经济增速而言,党的十八大以来我国宏观调控政策发生了一系列重大变革,经济增速趋于平稳,从双位数向个位数缓步回归。在经济繁荣时期,各行业维持高景气度,生产、消费、投资活动活跃,企业持续创造利润,现金流充裕,偿付能力稳健。随着经济步入下行周期,部分产业需求萎缩,居民实际购买力下降,企业利润下滑乃至亏损,现金流紧缩,难以如期偿付债券本息,继而形成实质性违约。据此推论,当经济增速下行时,债务主体偿付能力下降,发生信用债违约事件的可能性上升。鉴于2020年新冠肺炎疫情暴发的特殊性,剔除2020年数据,利用2014—2019年国内生产总值(GDP)增速与信用债违约数量的时间序列数据绘制得到图1。图1显示,自2014年起GDP增速维持震荡下行趋势,2016—2017年出现短暂上行,同期信用债违约数量则呈现显著的反向特征,即经济增速与信用债违约数量存在一定的负相关性。



就货币政策而言,近年来,相较美联储、欧洲央行、日本银行等发达经济体央行的宽松政策,中国人民银行更为克制,货币供应整体保持松紧适度。一般而言,当货币政策趋于紧缩时,金融机构会针对信用资质较差的债务主体要求更高的利率以弥补风险溢价,信贷增速继而放缓。融资成本增加导致发行人债务展期能力弱化,偿付能力承压,出现违约的可能性相应提高。对2014年1月至2021年1月金融机构信贷增速进行分析可得,2016年1月至2018年5月、2019年5月至2020年1月以及2020年5月至2021年1月三个阶段的信贷增速显著下行,而同时期信用债违约数量呈上升趋势,即信贷增速与信用债违约数量存在一定的负相关性。


就财政政策而言,对于部分自身造血能力不足、严重依赖财政资金支持的国有企业,财政收入减少是导致其发生违约的主要原因。历史数据显示,2017年1月至12月、2018年1月至10月、2019年9月至2021年1月等阶段财政收入下行趋势明显,财政腾挪空间受限,叠加前述货币政策收紧、企业自身运营等问题,共同导致了部分债务主体的违约事件。


(二)财务指标与债券违约的关系


财务指标可以反映企业的经营状况和偿债能力,其中运营指标能够充分揭示企业的还款来源,资本结构指标能综合反映企业的信用风险状况。下文将以定性与定量相结合的方式对财务指标与债券违约的关系进行探究。


首先,通过对历史信用债违约案例进行分析,将部分财务指标予以量化,观察各指标在违约和正常发行主体中的表现差异,可将违约主要原因归结如表1所示。



其次,为留出2020年之后的数据用于检验模型效果,本文选取2014年1月至2019年12月的信用债违约主体和正常到期主体为研究对象,选取部分反映盈利能力、债务偿付能力和企业成长前景的财务指标进行单指标分析。一是销售净利率。销售净利率是指企业净利润占销售收入净额的百分比,表现了企业销售的最终盈利能力。该比率越高,说明企业的盈利能力越强。以发行主体债券违约或到期前最后一期财报(年报或中报)中“销售净利率”指标排序后分组分析(见图2),可以看到各分组违约率呈现明显线性关系,即在销售净利率越低的分组中,违约企业占比越高。二是速动比率。速动比率是指企业速动资产与流动负债之比,用来反映企业的短期偿债能力。三是利润总额同比增长率。利润总额同比增长率是指本期利润总额与上期水平的比较,体现了企业的成长前景。同样进行分组分析可以发现,速动比率和利润总额同比增长率两个指标与违约的关联性也表现得同样明显,即在速动比率和利润总额同比增长率越低的分组中,违约企业占比越高。



最后,企业的基本面信息,所在区域、所属行业、性质、员工人数等也与信用债违约有着不可忽视的关系。如图3所示,截至2019年12月,70%的信用债违约余额来自民营企业。



(三)交易价格数据与债券违约的关系


业界对债券违约风险进行度量的主要方法之一就是市场价格法,其主要思想是基于交易价格数据来推断隐含违约率。隐含违约率是指通过债券价格信息推导出来的单只债券在一个付息周期内发生违约的边际概率。其对债券违约风险的计量和对违约风险变化趋势的反映具有较高的指示价值。在国际成熟债券市场中,隐含违约率因与实际违约率有较高的关联性,被广泛应用于信用风险定价。


2020年,中债金融估值中心有限公司基于中债价格指标产品及债券市场历史违约信息,推出中债市场隐含违约率。参考2020年四个季度(第一期于1月22日发布)的中债市场隐含违约率,对其发布之后一个季度内发生首次违约的发行主体进行观察,发现在划分适当阈值的情况下,中债市场隐含违约率对违约有着较强的预判性。这表明,中债市场隐含违约率能够客观、精细地计量发行主体信用风险水平,可用于预期信用损失计量及风险管理领域。




基于银行内部信息的信用债违约特征研究


业界对债券违约风险的分析一般是基于公开信息,而银行作为国家最重要的金融机构,具备拥有客户全量数据的天然优势。以建设银行为例,其充分利用行内数据资产,加工衍生出多类数据产品,范围覆盖产品信息、评级信息、信贷信息、资金流向信息,以及部分外购的工商、司法信息等。经统计,本文分析的债券发行主体中有近90%是或曾是建设银行客户。


根据考察期内信用债违约和正常到期情况将发行主体分为违约组和正常组,统计其在行内的信贷不良情况。结果显示,违约组的行内信贷不良客户占比均高于正常组,违约组的不良客户占比是正常组的约10倍。由此可见,发行主体信贷不良情况可作为判断后期债券违约风险的重要依据。


建设银行于2018年1月上线的全面风险监控预警平台(RAD)整合了行内外大数据资源,通过构建模型和规则对集团所有机构、客户、业务的风险进行监控、识别、预判并预警。本文选择RAD系统预警时间先于违约或到期日的发行主体分组观察。结果显示:一是总体上,违约组的客户预警率和客户均预警条数[2]均高于正常组,均大于1.6倍;二是从客户维和预警维[3]来看,违约组有红色级别预警的客户比例(81.58%)和红色预警条数比例(54.76%)也均远高于正常组。由此可见,RAD预警信息尤其是红色预警信息对于债券违约的前瞻分析具有借鉴意义。

 

基于集成学习算法的发行主体违约预测建模


(一)集成学习算法简介


集成学习算法是目前最流行的机器学习算法之一。在集成学习理论中,弱学习器被称为基础模型,这些模型可作为设计更复杂模型的构件。在大多数情况下,基础模型本身的性能并不是非常好,这要么是因为具有较高的偏置(如低自由度模型),要么是因为方差太大导致鲁棒性不强(如高自由度模型)。集成学习算法的思想是通过将这些弱学习器的偏置和/或方差结合起来,创建一个强学习器(也称“集成学习模型”),从而获得更好的性能。


按照弱学习器之间是否存在依赖关系可以分为以下两类:


一是弱学习器之间不存在强依赖关系,一系列的个体学习器可以并行生成。作为该类中最常见的算法代表,随机森林算法是由多棵决策树组成的集成学习模型,在处理分类问题时,其以CART分类树[4]为基础模型。根据大数据集理论,随机森林算法并行训练速度快,不存在过拟合的问题,具备很好的泛化能力。


二是弱学习器之间存在强依赖关系,一系列的个体学习器基本必须串行生成,该类的代表算法包括GBDT、XGBoost和LightGBM等。XGBoost是一种提升树模型,在2014年被首次提出后,因其优良的学习效果以及高效的训练速度而获得广泛关注和应用。XGBoost支持在选择最佳分裂点进行枚举时并行化,训练速度快,其损失函数引入了一阶和二阶导,并加入正则项,控制了模型的复杂度,防止过拟合。相对于传统的逻辑回归等机器学习算法,XGBoost在变量挖掘方面更具优势:逻辑回归的变量选择更依赖于业务经验,而XGBoost特有的树结构具备从原始变量中通过组合获取隐含信息的特性,对陌生业务领域的分析更具优势。


(二)模型构建


本文拟基于宏观经济、财务指标、债券交易价格等公开信息建立主模型,而对于是或曾是建设银行客户的发行主体使用行内信贷、资产变化、敏感客户名单、RAD预警系统等信息建立辅助模型,将主模型和辅助模型相结合来分析信用债违约风险。


有效的模型需具备预测的先兆性,即发行主体在发生违约前多久可被模型预测到。考虑到信用债尤其是违约风险较大的信用债流动性较差的特点,建模所选择的数据时点为违约或到期前1个月或以上。


根据对信用债违约特征和行内外数据的分析,本文筛选出 143个或有潜在影响的基础变量,再在基础变量之上进行加工衍生,共生成525个变量,变量基本情况及衍生方式见表2。其中,基本面因素包括成立年限、所在区域、行业类别等静态指标。



样本方面,2014—2019 年信用债违约或正常到期主体共有2452个(不包含没有公开信息的发行主体),其中有134个违约样本,包括有信用债违约记录的120个发行主体和债券正常到期前在建设银行或他行有信贷不良记录的14个发行主体[5],占总样本的比例为5.46%。


针对主模型,将2452个样本按7∶3的比例[6]划分训练集和测试集,在两个数据集里,违约样本占比保持在5.46%。根据数据缺失度进行变量筛选,删除缺失度在40%以上的变量,最终入模385个变量。


针对辅助模型,经过是否为建设银行客户的筛选后,样本数缩减为1347个,其中违约样本为83个,包括有信用债违约记录且为建设银行客户的69个发行体和债券到期前在建设银行或他行有信贷不良记录的14个发行体,违约样本占比为6.16%。同样按7∶3的比例划分训练集和测试集,两个数据集中,违约样本占比保持不变。删除缺失度在40%以上的变量,最终入模83个变量。


历史上,债券违约属于小概率事件,再鉴于以上两种集成算法的特性以及数据源的不同,在本次建模中,我们希望能得到较高的准确率,且不同的数据源能达到互补的效果,因此采用如下的组合策略:针对同一数据源分别使用随机森林和XGBoost两种算法,并将结果(违约概率最大的前5%客户)取交集作为该类数据源的唯一输出,之后再对两类数据源的输出结果取并集,最后以该名单作为最终产出。

 

模型效果评估


对模型效果的评估,通常从技术指标、应用效果及风险因素可解释性三个维度进行。


(一)技术指标


一是预警的精确性,也可理解为准确率,即通过模型产生的高违约风险预警名单中实际违约主体比例。该值越大,模型效果越好,即只需关注极小部分发行主体(成本),就能准确筛查出高违约风险主体(收益)。该值与未建模情况下违约主体基准比例的比值即为提升度。


二是预警的全面性,也可理解为覆盖率,即通过模型产生的高违约风险预警名单中实际违约主体占所有违约主体的比例。理想的状态是预警名单能预测到所有实际违约主体。


在实践中,预警的精确性和全面性是相互矛盾的,通常需根据业务部门的实际需求进行权衡。


(二)应用效果


以2020年1月1日存续债券的正常(未违约)发行主体1584个为观察对象,评估其未来违约风险。截至2020年7月底,共有14个发行主体发生首次违约。


运用上文构建的模型产生出一个包含63个发行主体的高违约风险预警名单。与实际违约情况相比,这63个高违约风险发行主体中有10个发生首次违约。评估效果解析为:基准比例,0.88%(14/1584);预警率,4%(63/1584);准确率,15.9%(10/63);提升度,18.1倍(15.9/0.88);覆盖率,71.4%(10/14)。可见,模型在精确性和全面性方面均有较好表现。


(三)风险因素可解释性


本文构建的模型是通过多个入模变量的值综合计算发行主体的违约率,但实际上,导致发行主体风险高的原因不尽相同,因此除了提供预警名单和违约率,我们还力图寻求一种方法来帮助业务人员进一步开展风险排查工作。由于XGBoost是一种集成模型,并不能得到类似线性模型的结果,所以需要引入其他贡献度评价方法。


在此,引入一个概念:沙普利值(Shapley value)。在本文模型中,沙普利值是指所有可能特征组合子集中特征值的平均边际贡献,是边际贡献度的加权平均值。通过使用沙普利值,可以解析出究竟是哪些因素使得该样本的违约率高于其他样本。我们以出现在模型预警名单中且在2020年已发生实际违约的某集团为例,通过计算沙普利值来解释各变量对违约率的贡献度,结果如下:


在公开信息数据模型中,对违约率上升贡献度最大的三个变量分别是违约前第一个季度与第三个季度债券区间最高价变化、违约前第一个季度与第四个季度债券区间收盘价变化及其趋势。进一步分析,该集团债券区间最高价在违约前第一个季度较第三个季度下降4.92元,而同期,总体样本均值为上升1.03元;同时,其收盘价在违约前第一季度较第四季度下降且下降幅度高达23.24元,而总体样本均值为上升1.33元。这些价格变化使得该集团债券违约率远高于所有样本违约率均值。


在银行内部数据模型中,对违约率上升贡献度最大的三个变量分别是敏感名单个数、关联被执行人的案号数量及执行标的合计。具体来看,该集团的关联被执行人执行中案号执行标的合计高达120亿元,远高于其他发行主体;另外,该集团同时出现在10个各类敏感名单中和5个被执行人案号中,该集团法定代表人任职公司个数有15个之多,存在极大的风险隐患。在多个负面效应的综合作用下,该集团的违约率远高于所有样本违约率均值。

 

结论


本文对债券发行主体的多种特征(宏观经济环境、财务指标、交易价格)进行违约关联性分析,并采用集成学习算法建立了发行主体违约先兆预测模型,得出以下结论:


一是相对于宏观经济数据和财务指标,债券交易价格对发行主体潜在风险敏感度极高,部分指标(如中债市场隐含违约率)设定阈值后可直接作为预警规则部署使用;而行内数据以独特的观察视角描绘出的发行主体风险画像,可成为风险排查手段的有效补充。


二是通过集成模型产生的信用债高违约风险预警名单对发行主体的违约风险进行预测具有很强的指导意义,而使用沙普利值将风险因素可解释化,为业务人员进一步开展风险排查工作指明了方向。

 

注:

1.根据万得(Wind)的划分标准,本文所指违约包括信用债本息展期、交叉违约、担保违约、技术性违约、提前到期未兑付、未按时兑付本金等情况。

2.客户预警率是指在相应客户组内有预警的客户数占比,公式为组内预警客户数/组内总客户数。客户均预警条数是指在相应客户组内,每个客户平均预警条数,公式为组内总预警数/组内总客户数。

3.客户维是指根据预警级别将客户划分为红色客户、橙色客户和蓝色客户,分别表示客户的风险水平:高、中、低,用于比较正常客户组和违约客户组中各风险级别的客户分布差异。预警维是根据预警级别将总预警数划分为红色预警条数、橙色预警条数和蓝色预警条数,用于比较正常客户组和违约客户组中各风险级别预警条数的分布差异。

4.CART分类(回归)树是几乎所有复杂决策树算法的基础。CART树是一棵二叉树,当用作解决分类问题时(如预测用户是否违约,违约用1表示一类,不违约用0表示另一类),采用基尼杂质(Gini Impurity)作为节点分裂的依据,直到节点中样本个数小于预定阈值。

5.因违约样本较少,因此用于建模的为不平衡样本集。考虑到信贷质量与债券违约有较强的相关性且有一定前瞻性,因此选择有信贷不良记录的14个发行主体来扩充违约样本,以减少不平衡样本集对模型效果的负面影响。

6.业界一般按8∶2或7∶3的比例划分,但为了避免属于某一类别的样本较少导致划分后测试集样本不平衡,本文以7∶3的比例划分。


参考文献

[1] 孟祥娟.违约统计:一件简单但容易犯错的事[R]. 上海:申万宏源, 2018.

[2] 生柳荣, 陈海华, 胡施聪, 等. 企业债券信用风险预警模型及其运用[J]. 投资研究, 2019, 38(6):25-35.

[3] 张剑文, 余艳炯, 倪力超, 冯瑞敏. 资本市场企业信用风险预警体系构建[C]//中国证券业协会.创新与发展:中国证券业2018年论文集(上册).北京:中国财政经济出版社, 2019:267-275.

[4] 中国人民银行常州市中心支行课题组,许永伟.债券违约风险预警指标体系构建研究[J].金融纵横,2019(9):42-47.

[5] 周荣喜,彭航,李欣宇,等.基于XGBoost算法的信用债违约预测模型[J].债券,2019(10):61-68.


 ◇ 本文原载《债券》2021年4月刊

 ◇ 作者单位:中国建设银行总行风险计量中心

 ◇ 责任编辑:宋鹏  罗邦敏


  中债研报

  

  2020

  2020

  202150

  

2020年度热文

   

   

   

   

   

   中债收益率曲线能帮助政策性银行债券发行定价么?


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存